home *** CD-ROM | disk | FTP | other *** search
/ SGI Enlighten DSM 3.1 / SGI EnlightenDSM 3.1.iso / DEC3240 / COMMON.Z / COMMON / bin / set_nis_master < prev    next >
Text File  |  1999-04-16  |  3KB  |  171 lines

  1. #!/bin/sh
  2. #
  3. # Copyright (c) 1990-1999 Enlighten Software Solutions, Inc.
  4. #
  5. # Check arguments:
  6. # <domain> <clients_list_file> <start_at_boot> <client_also>
  7. if [ $# -ne 4 ]
  8. then
  9.      exit 1
  10. fi
  11.  
  12. DOMAIN=$1
  13. CLIENTS=$2
  14. STARTATBOOT=$3
  15. CLIENT=$4
  16.  
  17. # Initialize variables
  18. TMP=/tmp/nissetup.master.$$
  19. HOSTS=/etc/hosts
  20. RCCONF=/etc/rc.config
  21. ECHO=/bin/echo
  22. RCMGR=/usr/sbin/rcmgr
  23. NISSETUP=/usr/sbin/nissetup
  24. YPDIR=/var/yp
  25.  
  26. # Check if NIS is already configured
  27. prev_conf=`$RCMGR get NIS_CONF`
  28.  
  29. # Check to make sure nissetup won't complain about
  30. # system configuration
  31. if [ \! -w "$RCCONF" ]
  32. then
  33.      exit 2
  34. fi
  35.     
  36. hname=`hostname`
  37. if [ $? -ne 0 ] 
  38. then
  39.      exit 3
  40. fi
  41.  
  42. if [ "$prev_conf" = "YES" ]
  43. then
  44.      exit 4
  45. fi
  46.  
  47. if [ \! -d "$YPDIR" ]
  48. then
  49.      exit 5
  50. fi
  51.  
  52. # Yes, we want to continue 
  53. $ECHO "C" > $TMP
  54.  
  55. # Press ENTER twice
  56. $ECHO "\n" >> $TMP
  57.    
  58. # The host's NIS domain name
  59. $ECHO $DOMAIN >> $TMP
  60. # ... yes, this is the correct NIS domain name
  61. $ECHO "y" >> $TMP
  62.  
  63. # This is going to be a NIS master server
  64. $ECHO "1" >> $TMP
  65.  
  66. # Yes, we want to continue 
  67. $ECHO "C" >> $TMP
  68.  
  69. # Allow remote password updates to the master copy of the passwd file
  70. $ECHO "y" >> $TMP
  71.  
  72. # Remake the NIS maps
  73. if [ -d "$YPDIR/$DOMAIN" ]
  74. then
  75.    $ECHO "Y" >> $TMP
  76. fi
  77.  
  78. # Check the list of NIS slave server names
  79. if [ -r $CLIENTS ]
  80. then
  81.    for servname in `cat $CLIENTS`
  82.    do
  83.       sed "s/#.*//" $HOSTS > $HOSTS.tmp
  84.       good=`egrep "[     ]$servname([     \.]|$)" $HOSTS.tmp`
  85.       if [ -n "$good" ]
  86.       then
  87.          short=`echo $hname | sed 's/\..*//'`
  88.          if [ "$servname" = "$hname" ]  || [ "$servname" = "$short" ]
  89.          then
  90.             exit 6
  91.          else
  92.             $ECHO $servname >> $TMP
  93.          fi
  94.       else
  95.          exit 7
  96.       fi
  97.    done
  98. else
  99.    exit 8
  100. fi
  101.  
  102. # Terminate the list
  103. $ECHO "\n" >> $TMP
  104.  
  105. # Yes, we want to continue 
  106. $ECHO "C" >> $TMP
  107.  
  108. rm -rf $YPDIR/$DOMAIN
  109. if [ $? -ne 0 ]
  110. then
  111.    exit 9
  112. fi
  113.  
  114. mkdir $YPDIR/$DOMAIN
  115. if [ $? -ne 0 ]
  116. then
  117.    exit 10
  118. fi
  119. rmdir $YPDIR/$DOMAIN
  120.  
  121. if [ \! -d "$YPDIR/src" ]
  122. then
  123.    mkdir "$YPDIR/src"
  124.    if [ \! -d "$YPDIR/src" ]
  125.    then
  126.       exit 11
  127.    fi
  128. fi
  129.  
  130. cp /etc/group $YPDIR/src/group
  131. cp /etc/hosts $YPDIR/src/hosts
  132. cp /var/adm/sendmail/aliases $YPDIR/src/mail.aliases
  133. cp /etc/netgroup $YPDIR/src/netgroup
  134. cp /etc/networks $YPDIR/src/networks
  135. cp /etc/passwd $YPDIR/src/passwd
  136. cp /etc/protocols $YPDIR/src/protocols
  137. cp /etc/rpc $YPDIR/src/rpc
  138. cp /etc/services $YPDIR/src/services
  139.  
  140. # Use the -s security option for ypbind
  141. $ECHO "y" >> $TMP
  142.  
  143. # Use the -S security option for ypbind
  144. $ECHO "y" >> $TMP
  145.  
  146. # Enter an authorized server
  147. $ECHO "" >> $TMP
  148.  
  149. # Yes, we want to continue 
  150. $ECHO "C" >> $TMP
  151.  
  152. # Disallow all ypset requests
  153. $ECHO "3" >> $TMP
  154.  
  155. # ... yes, this is correct
  156. $ECHO "y" >> $TMP
  157.  
  158. # Use all of the NIS databases served by the NIS server
  159. $ECHO "y" >> $TMP
  160.  
  161. # Start the NIS daemons now
  162. $ECHO "y" >> $TMP
  163.  
  164. # Run the NIS setup utility
  165. cat $TMP | $NISSETUP
  166.  
  167. # Done!
  168. rm $TMP
  169. exit 0
  170.  
  171.